.pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 46px auto 0;
    white-space: nowrap
}

.pagination .pages,
.pagination .pages .page-list {
    display: flex;
    gap: 7px
}

.pagination .pages--mobile {
    display: none
}

.pagination button,
.pagination a {
    cursor: pointer;
    text-decoration: none;
}

/* .pagination a {
    text-decoration: none
} */
.pagination>button,
.pagination a,
.pagination .page,
.pagination .page-counter {
    min-width: 36px;
    height: 36px;
    padding: 0 7px;
    border: 1px solid #8790a8;
    border-radius: 5px;
    background: #fff;
    color: #12a3bf;
    display: inline-grid;
    place-items: center;
    text-decoration: none;
}

.pagination>button {
    font-size: 30px;
    line-height: 1
}

.pagination .page {
    font-size: 18px
}

.pagination .page .page-list .is-current {
    border-color: #c4e8ed;
    background: #c4e8ed;
    color: #fff
}

.pagination .page-counter {
    font-size: 18px
}

.pagination .ellipsis {
    width: 30px;
    display: inline-grid;
    place-items: center;
    color: #878ba2;
    font-size: 18px
}

.pagination [hidden] {
    display: none !important
}

@media(max-width:900px) {

    .pagination {
        gap: 7px;
        margin-top: 108px
    }

    .pagination .pages--desktop,
    .pagination .edge {
        display: none !important
    }

    .pagination .pages--mobile {
        display: flex
    }

    .pagination>button,
    .pagination .page,
    .pagination .page-counter {
        min-width: 50px;
        height: 52px;
        padding: 0 8px;
        font-size: 30px
    }

    .pagination .ellipsis {
        width: 34px;
        font-size: 25px
    }

}

@media(max-width:560px) {

    .pagination {
        gap: 3px;
        margin-top: 70px
    }

    .pagination .pages--mobile {
        gap: 3px
    }

    .pagination>button,
    .pagination .page,
    .pagination .page-counter {
        min-width: 36px;
        height: 40px;
        padding: 0 5px;
        font-size: 20px
    }

    .pagination .ellipsis {
        width: 18px;
        font-size: 17px
    }

}

/* 20260731修正: ページネーションデザイン */
@media (min-width: 901px) {
    .pagination {
        width: 100%;
        min-height: 88px;
        margin-top: 32px;
        padding: 19px 0;
        gap: 8px;
        background: #fafafa;
        border: 1px solid #e5e5e5;
    }

    .pagination>button,
    .pagination>a {
        width: auto;
        min-width: 96px;
        height: 48px;
        padding: 0 16px;
        border-color: #d9d9d9;
        border-radius: 5px;
        color: #333;
        font-size: 14px;
        font-weight: 400;
    }

    .pagination .pages--desktop,
    .pagination .pages--desktop .page-list {
        gap: 0;
    }

    .pagination .pages--desktop .page-list .page {
        width: 48px;
        height: 48px;
        border-color: #d9d9d9;
        border-radius: 0;
        border-left-width: 0;
        color: #333;
        font-size: 14px;
    }

    .pagination .page-list .page:first-child {
        border-left-width: 1px;
        border-radius: 5px 0 0 5px;
    }


    .pagination .page-list .page:last-child {
        border-radius: 0 5px 5px 0;
    }

    .pagination .pages--desktop .page-list .page.is-current {
        background: #f1f1f1;
        border-color: #d9d9d9;
        color: #222;
        font-weight: 700;
    }

    .pagination .pages--desktop .ellipsis {
        width: 48px;
        height: 48px;
        color: #333;
        font-size: 14px;
    }
}

@media (max-width: 900px) {
    .pagination {
        width: calc(100% - 40px);
        height: 64px;
        margin: 32px auto 0;
        padding: 0;
        gap: 0;
        overflow: hidden;
        border: 1px solid #d9d9d9;
        border-radius: 6px;
        background: #fff;
    }

    .pagination .edge {
        display: none !important;
    }

    .pagination>.prev,
    .pagination>.next {
        flex: 0 0 64px;
        min-width: 64px;
        height: 62px;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        border: 0;
        border-radius: 0;
        color: #666;
        font-size: 0;
        background: #fff;
    }

    .pagination>.prev {
        border-right: 1px solid #d9d9d9;
    }

    .pagination>.next {
        border-left: 1px solid #d9d9d9;
    }

    .pagination>.prev::before,
    .pagination>.next::before {
        content: "";
        display: block;
        width: 16px;
        height: 16px;
        border-right: 2px solid #666;
        border-bottom: 2px solid #666;
    }

    .pagination>.prev::before {
        transform: rotate(135deg);
    }

    .pagination>.next::before {
        transform: rotate(-45deg);
    }

    .pagination .pages--mobile {
        flex: 1 1 auto;
        height: 62px;
        gap: 0;
    }

    .pagination .page-counter {
        width: 100%;
        height: 62px;
        padding: 0;
        border: 0;
        border-radius: 0;
        color: #333;
        font-size: 14px;
    }
}

@media (max-width: 560px) {
    .pagination {
        width: calc(100% - 40px);
        height: 52px;
        margin-top: 32px;
    }

    .pagination>.prev,
    .pagination>.next {
        flex-basis: 52px;
        min-width: 52px;
        height: 50px;
    }

    .pagination>.prev::before,
    .pagination>.next::before {
        width: 12px;
        height: 12px;
    }

    .pagination .pages--mobile,
    .pagination .page-counter {
        height: 50px;
    }

    .pagination .page-counter {
        font-size: 14px;
    }
}